-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Update Windows CI to use php-sdk-2.3.0 (PHP-8.1) #16097
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
php-sdk-2.2.0 still fetches dependencies from the no longer up to date <https://windows.php.net/downloads/php-sdk/deps/>, and as such won't be tested with any security updates we provide for Windows. Given that PHP 8.1 is going to receive security updates for further 15 months, we should should not ignore these dependency updates. We also fix failing OpenSSL tests, which are no longer failing, at least on Windows, because we have back-ported the fix for the Marvin Attack[1]. So we fix the test cases accordingly. [1] <GHSA-hh26-4ppw-5864>
So the versions that have not be fixed are declared as unsafe for PHP as per GHSA-hh26-4ppw-5864 . So not sure if we need to tweak tests for them. We might try to add some skip rule maybe but it might not be that easy to identify... |
Then I'm fine with not having any fallbacks for unfixed OpenSSL versions (might actually be good to have the tests fail for these versions; might push users to no longer use them). |
We use the same naming scheme as with openssl_error_string_basic.phpt.
Use OPENSSL_PKCS1_OAEP_PADDING padding in tests (cherry picked from commit 11caf09)
@ramsey, @patrickallaert, what do you think? I like to have a green CI for PHP 8.1, and this would be a good first step. PR #16107 would be another step. |
As is, we're running the push workflow for all pushes and pull request, plus we run more comprehensive nightly workflow for all branches which had commits during the day. That means that security branches may not run CI for weeks or even months. In the meantime, dependencies might be updated, which can cause later workflow runs to fail. For instance, a few openssl tests fail due to security fixes in OpenSSL[1], an update of Oracle Instant Client causes a couple of oci8 and pdo_oci tests to fail[2], and the macOS builds do no longer even built (investigation pending). Therefore, we allow to run the pull workflow manually, so it is possible to check the CI condition of temporary inactive branches from time to time. [1] <php#16097> [2] <php#16107>
As is, we're running the push workflow for all pushes and pull request, plus we run more comprehensive nightly workflow for all branches which had commits during the day. That means that security branches may not run CI for weeks or even months. In the meantime, dependencies might be updated, which can cause later workflow runs to fail. For instance, a few openssl tests fail due to security fixes in OpenSSL[1], an update of Oracle Instant Client causes a couple of oci8 and pdo_oci tests to fail[2], and the macOS builds do no longer even built (investigation pending). Therefore, we allow to run the pull workflow manually, so it is possible to check the CI condition of temporary inactive branches from time to time. [1] <#16097> [2] <#16107> Closes GH-16148.
php-sdk-2.2.0 still fetches dependencies from the no longer up to date https://windows.php.net/downloads/php-sdk/deps/, and as such won't be tested with any security updates we provide for Windows. Given that PHP 8.1 is going to receive security updates for further 15 months, we should should not ignore these dependency updates.
We also fix failing OpenSSL tests, which are no longer failing, at least on Windows, because we have back-ported the fix for the Marvin Attack[1]. So we fix the test cases accordingly.
[1] GHSA-hh26-4ppw-5864
I was quite surprised to see a recent PHP-8.1 CI job passing on Windows; but of course, when running against out-dated dependencies, that is actually expected. Note that our nightly builds already use php-sdk-2.3.0, so the test failures can be seen there.
@bukka, the OpenSSL test updates are likely too strict, since we may need to cater to OpenSSL versions which haven't been fixed yet.